(define (ripple-carry-adder a b s c) 
  (let ((c-in (make-wire))) 
    (if (null? (cdr a)) 
      (set-signal! c-in 0) 
      (ripple-carry-adder (cdr a) (cdr b) (cdr s) c-in)) 
    (full-adder (car a) (car b) c-in (car s) c))) 
